1. Technical Field
The present disclosure relates to integrated circuits incorporating a code configured to identify or to authenticate the origin of these circuits. In particular, the present disclosure relates to integrated circuits for which this code is programmed in non-deterministic fashion, so that it is difficult or even impossible to make a copy of the integrated circuit including its code.
2. Description of the Related Art
Digital keys are especially exchanged over the Internet and used in identification protocols controlling financial transactions, the provision of e-services, contactless payments, the access to critical data, etc. To reinforce the security of such transactions, the digital keys are currently stored in a dedicated integrated circuit such as that of a chip card, for example, in an OTP-type (one-time programmable) non-volatile memory. One must then be physically in possession of this dedicated circuit to be authenticated. The counterfeiting of such circuits thus is a major security issue regarding this so-called “hardware” approach. Indeed, if, by any means, one can access the code of an authentic chip or intercept such a code, and if one has a blank counterfeit chip in one's possession, it becomes possible to program the latter identically to the authentic chip.
There thus is a need for integrated circuits incorporating a forgery-proof digital signature. Such signatures may be obtained by taking advantage of the intrinsic dispersion of physical or electric features of elementary components of an integrated circuit, such as transistors, interconnects, capacitors, etc. . . . , and are the base of the concept of Physical Unclonable Function, better known as PUF, which concept has for example been developed by A.-R. Sadeghi and D. Naccache in their work “Towards Hardware-Intrinsic Security”, Springer, 1st Edition, 2010.
Such dispersions of parameters of elementary components of an integrated circuit originate from the inevitable dimension, thickness, and physico-chemical fluctuations of the materials used, which are inherent to manufacturing processes. Such fluctuations being in practice non-deterministic, a code which is generated based on such fluctuations would be pseudo-random and it would be difficult, or even impossible, to copy a chip having a same native code, short of replacing the corresponding circuit block with a block mimicking the original block and its code. Such a strategy is theoretically possible but in practice very expensive for the counterfeiter, which makes it less advantageous.
The original circuit manufacturer can extract this native code at the end of the manufacturing process and can thus keep up to date a register of the signature of the authentic circuits that are distributed. The signature of a circuit may then be checked in various occasions to authenticate the origin of the circuit: by the end customer, by the manufacturer in case of a return of goods, by the operating system of a computer incorporating the circuit, etc.
To implement such physical unclonable functions or PUFs, it has been provided (WO2010/076733) to form a network of metal-insulator-metal capacitors (or MIM capacitors) having identical dimensions but where the insulator is intentionally roughened to locally vary the capacitance value. The code is then formed by all the electric capacitance values of the capacitors. Such a solution has the disadvantage that these values are continuous values and must be digitized to form a digital code exploitable by a program. On the other hand, the aging and the degradation of the dielectric may result in an alteration of the code over time or according to the conditions of use of the circuit.
Other solutions have been provided, such as those exploiting the initialization values of SRAM cells on powering-on thereof, the dispersion of the threshold voltage of MOS transistors, of the frequency of ring oscillators, or of the propagation times of signals through logic gates. All these solutions have at least one of the two previously mentioned disadvantages, that is, they generate continuous analog values which must be previously digitized to obtain an exploitable binary code, or said code is unsteady by nature because it is sensitive to the aging of the circuit and to its conditions of use.